package com.example.demo.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.VendorExtension;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;


/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: fzykd
 * Date: 2022-11-08
 * Time: 18:17
 */

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    //配置Swagger
    //Docket 是Swagger中的全局配置对象
    @Bean
    public Docket docket(){
        //给一个对象 创建一个对应的Swagger对象
        Docket docket = new Docket(DocumentationType.SWAGGER_2);

        //AIP文档的表述信息
        ApiInfo apiInfo = new ApiInfoBuilder().
                contact(new Contact( //配置的文档的主体描述

                        "大娱乐家",
                        "https://baidu.com",
                        "lqh_gp@163.com")
        )
                .title("这是开发文档")
                .description("这是一个描述")
                .version("1.1")  //版本号
                .build();
        //构建器来创建

        //传的是一个ApiInfo的对象 给docket上下文配置描述信息
        docket.apiInfo(apiInfo);

        docket
                .select() //获取Docket中的选择器，返回ApiSelectorBuilder
                // 配置扫描配置的方式 basePackage通过扫描包的路径
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")).build(); //指定规则
                //设定扫描那个包(子包)底下的注解
        return docket;
    }

}
